package hhm.android.main;

import android.content.Context;
import android.widget.TextView;

import hhm.android.library.chart.components.MarkerView;
import hhm.android.library.chart.data.Entry;
import hhm.android.library.chart.highlight.Highlight;
import hhm.android.library.chart.utils.MPPointF;
import siau.android.http.model.ChartModel;

import static siau.android.base.ClassChangeUtilKt.analyseDataBeforeSet;

public class MyMarkerView extends MarkerView {

    private final TextView top;
    private final TextView bottom;
    private final int pageType;
    private final String cla;

    public MyMarkerView(Context context, int pageType, String cla) {
        super(context, R.layout.marker_view);
        this.pageType = pageType;
        this.cla = cla;

        top = findViewById(R.id.marker_view_top);
        bottom = findViewById(R.id.marker_view_bottom);
    }

    // callbacks everytime the MarkerView is redrawn, can be used to update the
    // content (user-interface) 每次 MarkerView 重绘此方法都会被调用，并为您提供更新它显示的内容的机会
    @Override
    public void refreshContent(Entry e, Highlight highlight) {
        //这里就设置你想显示到makerview上的数据，Entry可以得到X、Y轴坐标，也可以e.getData()获取其他你设置的数据
        ChartModel c = (ChartModel) e.getData();
        if (c != null) {
            top.setText(analyseDataBeforeSet("" + c.getRecordValue(), pageType, cla));
            bottom.setText(c.getRecordDate());
        }
        super.refreshContent(e, highlight);
    }


    /*
     * offset 是以點到的那個點作為 (0,0) 中心然後往右下角畫出來 该方法是让markerview现实到坐标的上方
     * 所以如果要顯示在點的上方
     * X=寬度的一半，負數
     * Y=高度的負數
     */
    @Override
    public MPPointF getOffset() {
        // LogUtils.e("ddd", "width:" + (-(getWidth() / 2)) + "height:" + (-getHeight()));
        return new MPPointF(-(getWidth() / 2), -getHeight());
    }

}